Skip to content

feat: add Tavily search provider support#157

Merged
devonakelley merged 1 commit intomainfrom
feat/tavily-search-v2
Apr 7, 2026
Merged

feat: add Tavily search provider support#157
devonakelley merged 1 commit intomainfrom
feat/tavily-search-v2

Conversation

@devonakelley
Copy link
Copy Markdown
Contributor

Adds Tavily Search as a native Router path. Returns web search results wrapped in an OpenAI-compatible ChatCompletion shim — Thompson Sampling can compete Tavily against LLMs on web_scraping and research goals.

Changes

  • Added tavily/ vendor prefix to _VENDOR_PREFIX_MAP
  • Added _make_chat_completion() generic shim helper for non-LLM providers
  • Added _call_tavily() — calls Tavily API, wraps result as ChatCompletion
  • Env var: TAVILY_API_KEY
  • Tests: 4 new test cases (dispatch, response shape, missing API key)

Usage

from kalibr import Router

router = Router(
    goal="web_scraping",
    paths=["tavily/advanced", "deepseek-chat"],
    success_when=lambda out: len(out) > 50
)
response = router.completion(messages=[{"role": "user", "content": "latest AI benchmarks"}])

Supports tavily/basic and tavily/advanced search depths.

Tavily is a hackathon co-sponsor.

@devonakelley devonakelley merged commit 865aaf8 into main Apr 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant